iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
0
Modern Web

與WordPress的邂逅,像極了愛情!系列 第 3

客製化 WordPress 主題時必學的 php 基本 (下)

  • 分享至 

  • xImage
  •  

《本篇文章同步發表在我瘋官方粉絲團&我瘋官方網站

前言

大家好,承襲上一篇,這篇首先跟大家聊聊 php 特別之處。php 有一些相異於大部分程式語言的寫法,讓筆者覺得非常有意思,這邊也與大家進行些分享。

大綱

  • php 稀奇古怪部分
  • 常見 wp php 語法

php 稀奇古怪部分

  • string
    php 字串串接用 . 作為連接,其他語言大部分是以 +
<?php
$a = 'hello';
$b = ' world';
$res = $a . $b;
var_dump($res); // string(11) "hello world"
?>
  • boolean
    1. true 和 false 大小寫沒差,可寫成 trUe
    2. php 如果是 true 則回傳 1 反之為 空值 -> 這一點在剛開始寫 php 時常常莫名踩坑
    3. php 如果是 true 則回傳 1 反之為 空值
    4. 兩個等號只會比對值、三個等號比對資料類別
    5. 兩個同內容物陣列比對,結果也是 true
<?php
$flag = FaLsE;
var_dump($flag == fAlSe); // bool(true)

$a = true; $b = true; $c = false;
echo $a===$b; // 1 
echo $a===$c; // 空值

$d = 1;
echo $a==$d; // 1 
echo $a===$d; // 空值

$ary1 = array(1,2,3); 
$ary2 = array(1,2,3); 
var_dump($ary1===$ary2); //bool(true)
?>

常見 wp php 語法

  • If Else Statement
  • Logitcal Operator
  • Array
  • 關聯陣列 Associated Array
  • While Loop 與 forLoop
<?php
// If Else Statement
$a = true; $b = false;
if($a===$b){echo 'yes';} else {echo 'no'}

// Logitcal Operator  
$a = (1>2 or 3<4);  //or兩端只要其中一個條件成立就會返回true。反之,返回false。
var_dump($a);  //輸出變數$a的資料型態與內容
echo '<br>';
$b = (1>2 and 3<4);  //and兩端條件皆成立才會返回true。反之,返回false。
var_dump($b);  //輸出變數$b的資料型態與內容
echo '<br>';
$c = !(1>2);  //!表示「不是」,1>2不成立會返回false,負負得正的結果,變成true。
var_dump($c);  //輸出變數$c的資料型態與內容

// Array
$ary = array(1,2,"3"); 
var_dump($ary); //array(3) {[0]=>int(1) [1]=>int(2)[2]=>string(1) "3"}
$ary2 = [1,2,"3"]; 
var_dump($ary); //array(3) {[0]=>int(1) [1]=>int(2)[2]=>string(1) "3"}
?>

此外,讓我們聊聊 關聯陣列 (Associated Array) ,WP也很常見到它,概念很簡單,是讓我們指定陣列關鍵字當作索引,範例如下:

<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
//or
$age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "43";
// 想要取得 key
print_r(array_keys($age));
/*
Array
(
    [0] => Peter
    [1] => Ben
    [2] => Joe
)
*/
?>

先來簡單說 forLoop ,在 php 世界中,Loop 相對其他語言沒有太大差別

<?php
/* example 1 */
for ($i = 1; $i <= 10; $i++) {
    echo $i;
}
?>

While Loop 是在 wp 上會常用的迴圈方式,後面會提到的 strand loopcustom loop,都常常與其搭配

<?php
/* 寫法 1 */
$i = 1;
while ($i <= 10) {
    echo $i++;  /* the printed value would be
                   $i before the increment
                   (post-increment) */
}

/* 寫法 2 */
// 也是 wp 中比較常見的寫法
$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;
?>

也有 foreach 寫法,經常與 array 搭配使用

// 搭配 array 進行使用
<?php
$scores['John'] = 77;
$scores['Christine'] = 93;
$scores['Teddy'] = 82;
$scores['Grace'] = 56;
foreach ($scores as $name => $score) {
    echo "$name's score is $score\\n";
} 

/* 
Output:
John's score is 77
Christine's score is 93
Teddy's score is 82
Grace's score is 56
*/

以上大概是 WP 中常見的 php 觀念,這邊我們就點到為止,後續我們來聊聊 WordPress 中檔案結構的階層概念,下次見囉~

參考資料

PHP: Hypertext Preprocessor

《精采文章同步發表》
1.我瘋FB粉絲專頁:https://www.facebook.com/我瘋程式工作室wowfuncode-102683961458110/
2.我瘋官網:https://www.wowfuncode.com/category/blog/


上一篇
客製化 WordPress 主題時必學的 php 基本 (上)
下一篇
WordPress Hierarchy 以及檔案架構
系列文
與WordPress的邂逅,像極了愛情!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言